<?php

class Application_Model_DbTable_Deudas extends Zend_Db_Table_Abstract
{

    protected $_name = 'deudas';

        public function get($id)
    {
        $id = (int) $id;
        //$this->fetchRow devuelve fila donde id = $id
        $row = $this->fetchRow('id = ' . $id);
        if (!$row)
        {
            throw new Exception("Could not find row $id");
        }
        //formateo fecha a dia-mes-año para que se vea mejor
        //$fecha = $row->fecha;
        //$fecha = date("d-m-Y", strtotime($fecha));
//        die($fecha);
        //$row->fecha = $fecha;
        return $row->toArray();
    }
    
    public function agregar($fechaInicio, $numDocumento, $fechaLimite, $valorDeuda, $descripcion, $idCliente)
    {
        $data = array('fechaInicio'=>$fechaInicio,
                      'numDocumento'=>$numDocumento,
                      'fechaLimite'=>$fechaLimite,
                      'valorDeuda'=>$valorDeuda,
                      'pendiente'=>$valorDeuda,
                      'descripcion'=>$descripcion,
                      'idCliente'=>$idCliente);
        
        $this->insert($data);
        return $this->getDefaultAdapter()->lastInsertId(); 
    }
    
    
    public function borrar($id) {
        $this->delete("id =" . (int)$id);
    }
    
    public function Listar() {
        
        //select usuario.id, usuario.nick, usuario.pass, idTipoUsuario.descripcion 
        //from usuario inner join tipousuario on usuario.idTipoUsuario = tipousuario.id
        
        $select = $this->select()->setIntegrityCheck(false)
             ->from(array('p' => 'cliente'),
                    array('nombre', 'apellido'))
             ->join(array('l' => 'deudas'),
                    'p.id = l.idCliente',
                    array('id', 'fechaInicio', 'numDocumento', 'fechaLimite', 'valorDeuda', 'pendiente', 'descripcion') ); // empty list of columns
        
        return $this->fetchAll($select);
    }
    
    //listar deudas por cliente
    public function ListarPorCliente($idCliente) {
        
          $select = $this->select()->setIntegrityCheck(false)
             ->from(array('p' => 'cliente'),
                    array('nombre', 'apellido'))
             ->join(array('l' => 'deudas'),
                    'p.id = l.idCliente',
                    array('id', 'fechaInicio', 'numDocumento', 'fechaLimite', 'valorDeuda', 'pendiente', 'descripcion') )
                ->where('l.idCliente = ?',$idCliente)
                ->where('l.pagada = ?','0'); // empty list of columns
        
        return $this->fetchAll($select);
    }
    
     public function cambiar($id, $fechaInicio, $numDocumento, $fechaLimite, $valorDeuda, $descripcion, $idCliente)
    {
        $data = array('fechaInicio' => $fechaInicio, 'numDocumento' => $numDocumento,
            'fechaLimite' => $fechaLimite, 'valorDeuda' => $valorDeuda,
            'descripcion' => $descripcion, 'idCliente'=>$idCliente );
        //$this->update cambia datos de album con id= $id
        $this->update($data, 'id = ' . (int) $id);
        
        
    }
    
       public function cambiarDeuda($id,   $valorPago)
    {
            $select = $this->select()->setIntegrityCheck(false)
               ->from(array('l' => 'deudas'),
                    array('id', 'pendiente') )
                ->where('l.id = ?',$id);
            $valPendiente=0;
        foreach ($this->fetchAll($select) as $c)
        {
          $valPendiente= $c->pendiente;
        }

        if(($valPendiente-$valorPago)==0){    
        $data = array( 'pendiente'=>new Zend_Db_Expr('pendiente - ' . $valorPago),'pagada'=>'1');
        $this->update($data, 'id = ' . (int) $id);
        }
        else
        {            
        $data = array( 'pendiente'=>new Zend_Db_Expr('pendiente - ' . $valorPago),'pagada'=>'0');
        $this->update($data, 'id = ' . (int) $id);
        }
        
    }
    

}

